package com.ruoyi.hospital.mapper;

import java.util.Date;
import java.util.List;

import com.ruoyi.hospital.domain.ConsultationRecord;
import com.ruoyi.system.domain.po.ConsultationRecordPO;
import com.ruoyi.system.domain.vo.ConsultationRecordVO;
import org.apache.ibatis.annotations.Param;

/**
 * 宠物就诊记录Mapper接口
 *
 * @author qichi
 * @date 2023-07-04
 */
public interface ConsultationRecordMapper {
    /**
     * 查询宠物就诊记录
     *
     * @param id 宠物就诊记录主键
     * @return 宠物就诊记录
     */
    public ConsultationRecord selectConsultationRecordById(Long id);

    /**
     * 查询宠物就诊记录列表
     *
     * @param consultationRecord 宠物就诊记录
     * @return 宠物就诊记录集合
     */
    public List<ConsultationRecord> selectConsultationRecordList(ConsultationRecord consultationRecord);

    /**
     * 查询宠物就诊记录列表
     *
     * @param consultationRecord 宠物就诊记录
     * @return 宠物就诊记录集合
     */
    public List<ConsultationRecord> selectConsultationRecordListnow(ConsultationRecord consultationRecord);

    /**
     * 新增宠物就诊记录
     *
     * @param consultationRecord 宠物就诊记录
     * @return 结果
     */
    public int insertConsultationRecord(ConsultationRecord consultationRecord);

    /**
     * 修改宠物就诊记录
     *
     * @param consultationRecord 宠物就诊记录
     * @return 结果
     */
    public int updateConsultationRecord(ConsultationRecord consultationRecord);

    /**
     * 删除宠物就诊记录
     *
     * @param id 宠物就诊记录主键
     * @return 结果
     */
    public int deleteConsultationRecordById(Long id);

    /**
     * 批量删除宠物就诊记录
     *
     * @param ids 需要删除的数据主键集合
     * @return 结果
     */
    int deleteConsultationRecordByIds(Long[] ids);

    /**
     * 查询就诊记录
     *
     * @param consultationRecordPO 就诊信息条件
     * @return 结果
     */
    List<ConsultationRecordVO> queryConsultationRecord(ConsultationRecordPO consultationRecordPO);

    /**
     * 查询就诊记录
     *
     * @param customerPhone 手机号
     * @param list          就诊状态
     * @return 结果
     */
    List<ConsultationRecordVO> queryConsultationRecordAndStatus(@Param("customerPhone") String customerPhone, @Param("list") List<Integer> list,@Param("timeStart") Date timeStart, @Param("timeEnd")Date timeEnd);
}
